package com.tools.commons.model;

import com.tools.commons.utils.BeanUtils;
import org.springframework.lang.NonNull;

/**
 * entity ----> dto
 *
 * @param <DTO>
 * @param <Entity>
 * @author wangminggen
 */
public interface OutputConverter<DTO extends OutputConverter<DTO, Entity>, Entity> {
    @SuppressWarnings("unchecked")
    @NonNull
    default <T extends DTO> T convertFrom(@NonNull Entity entity) {
        BeanUtils.updateProperties(entity, this);
        return (T) this;
    }
}
